#ifndef __GET_TEMP_H__
#define __GET_TEMP_H__

#include <wiringPi.h>
#include <stdio.h>
#include <stdlib.h>

//IO方向设置
#define DS18B20_IO_IN() pinMode(25, INPUT)
#define DS18B20_IO_OUT() pinMode(25, OUTPUT)

#define DS18B20_DQ_OUT1 digitalWrite(25, HIGH) //数据端口
#define DS18B20_DQ_OUT0 digitalWrite(25, LOW)  //数据端口
#define DS18B20_DQ_IN digitalRead(25)          //数据端口
#define u8 unsigned char
#define u16 unsigned int

u8 DS18B20_Init(void);           //初始化DS18B20
short DS18B20_Get_Temp(void);    //获取温度
void DS18B20_Start(void);        //开始温度转换
void DS18B20_Write_Byte(u8 dat); //写入一个字节
u8 DS18B20_Read_Byte(void);      //读出一个字节
u8 DS18B20_Read_Bit(void);       //读出一个位
u8 DS18B20_Check(void);          //检测是否存在DS18B20
void DS18B20_Rst(void);          //复位DS18B20

typedef void (*get_water_temp)(short); //回调函数

int water_temp_init(get_water_temp get_water_temp_cb);
void *get_temp(void *arg);

#endif